package site.jlopen.secret.service.intf;

import site.jlopen.secret.common.SecretClientResponse;
import site.jlopen.secret.model.data.SecretDatasourceCreateReq;
import site.jlopen.secret.model.data.SecretDatasourceInfoResp;

/**
* @ClassName: DataSourceManage
* @Description: 数据源服务接口
* @author ChenJiaLu
* @date 2024年9月27日 下午2:25:53
 */
public abstract interface SecretDatasourceManage {
	
	/**
	* <strong>创建数据源</strong>
	* @Title: datasourceCreate
	* @Description: <p>TODO</p>
	* @param form
	* @return <p>TODO</p>
	* SecretClientResponse<String>
	* @author ChenJiaLu
	* @date 2024年10月17日 上午11:18:17
	 */
	public SecretClientResponse<String> datasourceCreate(SecretDatasourceCreateReq form);
	/**
	* <strong>修改数据源</strong>
	* @Title: datasourceUpdate
	* @Description: <p>TODO</p>
	* @param form
	* @return <p>TODO</p>
	* SecretClientResponse<String>
	* @author ChenJiaLu
	* @date 2024年9月29日 上午10:57:08
	 */
	public SecretClientResponse<String> datasourceUpdate(SecretDatasourceCreateReq form);
	/**
	* <strong>移除数据源</strong>
	* @Title: datasourceRemove
	* @Description: <p>TODO</p>
	* @param datasourceId
	* @return <p>TODO</p>
	* SecretClientResponse<String>
	* @author ChenJiaLu
	* @date 2024年10月17日 下午3:06:59
	 */
	public SecretClientResponse<String> datasourceRemove(String datasourceCode);

	/**
	* <strong>节点绑定到数据源</strong>
	* @Title: datasourceBind
	* @Description: <p>TODO</p>
	* @param datasourceCode
	* @param nodeCode
	* @return <p>TODO</p>
	* SecretClientResponse<String>
	* @author ChenJiaLu
	* @date 2024年10月18日 上午9:20:59
	 */
	public SecretClientResponse<String> datasourceBind(String datasourceCode, String nodeCode);
	/**
	 * 节点解绑数据源
	* <strong>text</strong>
	* @Title: datasourceUnbind
	* @Description: <p>TODO</p>
	* @param datasourceCode
	* @param nodeCode
	* @return <p>TODO</p>
	* SecretClientResponse<String>
	* @author ChenJiaLu
	* @date 2024年10月18日 上午9:21:10
	 */
	public SecretClientResponse<String> datasourceUnbind(String datasourceCode, String nodeCode);
	/**
	* <strong>节点数据源状态</strong>
	* @Title: datasourceStatus
	* @Description: <p>TODO</p>
	* @param datasourceCode
	* @param nodeCode
	* @return <p>TODO</p>
	* SecretClientResponse<String>
	* @author ChenJiaLu
	* @date 2024年10月18日 上午9:21:18
	 */
	public SecretClientResponse<String> datasourceStatus(String datasourceCode, String nodeCode);
	/**
	* <strong>查询节点数据源</strong>
	* @Title: datasourceInfo
	* @Description: <p>TODO</p>
	* @param datasourceCode
	* @return <p>TODO</p>
	* SecretClientResponse<SecretDatasourceInfoResp>
	* @author ChenJiaLu
	* @date 2024年9月29日 上午10:57:14
	 */
	public SecretClientResponse<SecretDatasourceInfoResp> datasourceInfo(String datasourceCode);
	
}
